#include <unistd.h>
#include "constantes.h"
#include "sharedmemory.c"
#include "semaforos.h"

int prepararChori()
{

}

int main(int argc, char *argv[])
{
	int shmid;
	t_parrilla *shm_ptr;							/* Puntero a la SharedMemory */
	int mutex;
	int nolleno;
	int novacio;
	char mensaje[120];

	if ( (mutex = getsem(SEM_PARRILLA) ) < 0 )				/* Obtengo el ID del semaforo de la parrilla */
	{
		sprintf(mensaje, "Error obtener ID de semaforo\n");
		write(fileno(stdout), mensaje, strlen(mensaje));

		exit(-1);
	}

	nolleno = getsem(SEM_NOLLENOC);
	novacio = getsem(SEM_NOVACIOC);
		
	key_t clave_shm;
	clave_shm = ftok(DIRECTORIO, SHM_PARRILLA);
	shmid = shmget(clave_shm, sizeof(t_parrilla), 0666);
	shm_ptr = (t_parrilla *) shmat(shmid, NULL, 0);				/* Obtengo el puntero a la SharedMemory */

	while(1)
	{
		p(mutex);								/* Ocupo el Semaforo, si esta ocupado espero hasta que se libere */

		if ( shm_ptr->cant_chorizos = MAX_CANT_CHORIZO )			/* Si hay menos chorizos que la cantidad maxima, lleno.. */
		{
			v(mutex);
			p(nolleno);
			printf("Tengo la maxima cantidad: %d\n", shm_ptr->cant_chorizos);
			p(mutex);
		}
		
		printf("Tengo choris: %d\n", shm_ptr->cant_chorizos);
		printf("Lleno con los que faltan: %d\n", MAX_CANT_CHORIZO - shm_ptr->cant_chorizos);
		shm_ptr->cant_chorizos = MAX_CANT_CHORIZO - shm_ptr->cant_chorizos;

		v(mutex);
		v(novacio);
	}

	printf("Elimino la SHM\n");
	shmdt((void *) shm_ptr);

	return 0;
}
